#include <stdio.h>  
  
// 函数用于反转一个字节的8位  
char reverseByte(char byte) {  
    byte = (byte & 0x01) << 7 | (byte & 0x02) << 5 | (byte & 0x04) << 3 |  
           (byte & 0x08) << 1 | (byte & 0x10) >> 1 | (byte & 0x20) >> 3 |  
           (byte & 0x40) >> 5 | (byte & 0x80) >> 7;  
    return byte;  
}  
  
// 主函数  
int main() {  
    // 示例数组A  
    char A[] = {0x12, 0x34, 0x56, 0x78, 0x9A, 0xBC, 0xDE, 0xF0};  
    int n = sizeof(A) / sizeof(A[0]); // 计算数组A的长度  
  
    // 数组B用于存储反转后的结果  
    char B[n];  
  
    // 对数组A中的每个元素进行高低位反转，并存入数组B  
    for (int i = 0; i < n; i++) {  
        B[i] = reverseByte(A[i]);  
    }  
  
    // 打印结果  
    for (int i = 0; i < n; i++) {  
        printf("A[%d] = 0x%X, B[%d] = 0x%X\n", i, A[i], i, B[i]);  
    }  
  
    return 0;  
}